{
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Isotonic Regression"
      ],
      "metadata": {
        "nteract": {
          "transient": {
            "deleting": false
          }
        }
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "Isotonic regression or monotonic regression is the technique of fitting a free-form line to a sequence of observations such that the fitted line is non-decreasing (or non-increasing) everywhere, and lies as close to the observations as possible. (Wikipedia)"
      ],
      "metadata": {
        "nteract": {
          "transient": {
            "deleting": false
          }
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "from matplotlib.collections import LineCollection\n",
        "\n",
        "import warnings\n",
        "warnings.filterwarnings(\"ignore\")\n",
        "\n",
        "# yfinance is used to fetch data \n",
        "import yfinance as yf\n",
        "yf.pdr_override()"
      ],
      "outputs": [],
      "execution_count": 1,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:30.840Z",
          "iopub.execute_input": "2021-02-09T01:57:30.887Z",
          "iopub.status.idle": "2021-02-09T01:57:32.276Z",
          "shell.execute_reply": "2021-02-09T01:57:32.387Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# input\n",
        "symbol = 'AMD'\n",
        "start = '2014-01-01'\n",
        "end = '2018-08-27'\n",
        "\n",
        "# Read data \n",
        "dataset = yf.download(symbol,start,end)\n",
        "\n",
        "# View Columns\n",
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[*********************100%***********************]  1 of 1 completed\n"
          ]
        },
        {
          "output_type": "execute_result",
          "execution_count": 2,
          "data": {
            "text/plain": "            Open  High   Low  Close  Adj Close    Volume\nDate                                                    \n2014-01-02  3.85  3.98  3.84   3.95       3.95  20548400\n2014-01-03  3.98  4.00  3.88   4.00       4.00  22887200\n2014-01-06  4.01  4.18  3.99   4.13       4.13  42398300\n2014-01-07  4.19  4.25  4.11   4.18       4.18  42932100\n2014-01-08  4.23  4.26  4.14   4.18       4.18  30678700",
            "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Open</th>\n      <th>High</th>\n      <th>Low</th>\n      <th>Close</th>\n      <th>Adj Close</th>\n      <th>Volume</th>\n    </tr>\n    <tr>\n      <th>Date</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2014-01-02</th>\n      <td>3.85</td>\n      <td>3.98</td>\n      <td>3.84</td>\n      <td>3.95</td>\n      <td>3.95</td>\n      <td>20548400</td>\n    </tr>\n    <tr>\n      <th>2014-01-03</th>\n      <td>3.98</td>\n      <td>4.00</td>\n      <td>3.88</td>\n      <td>4.00</td>\n      <td>4.00</td>\n      <td>22887200</td>\n    </tr>\n    <tr>\n      <th>2014-01-06</th>\n      <td>4.01</td>\n      <td>4.18</td>\n      <td>3.99</td>\n      <td>4.13</td>\n      <td>4.13</td>\n      <td>42398300</td>\n    </tr>\n    <tr>\n      <th>2014-01-07</th>\n      <td>4.19</td>\n      <td>4.25</td>\n      <td>4.11</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>42932100</td>\n    </tr>\n    <tr>\n      <th>2014-01-08</th>\n      <td>4.23</td>\n      <td>4.26</td>\n      <td>4.14</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>30678700</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
          },
          "metadata": {}
        }
      ],
      "execution_count": 2,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "shell.execute_reply": "2021-02-09T01:57:35.260Z",
          "iopub.status.busy": "2021-02-09T01:57:32.312Z",
          "iopub.execute_input": "2021-02-09T01:57:32.334Z",
          "iopub.status.idle": "2021-02-09T01:57:34.307Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset['Increase_Decrease'] = np.where(dataset['Volume'].shift(-1) > dataset['Volume'],1,0)\n",
        "dataset['Buy_Sell_on_Open'] = np.where(dataset['Open'].shift(-1) > dataset['Open'],1,0)\n",
        "dataset['Buy_Sell'] = np.where(dataset['Adj Close'].shift(-1) > dataset['Adj Close'],1,0)\n",
        "dataset['Returns'] = dataset['Adj Close'].pct_change()\n",
        "dataset = dataset.dropna()"
      ],
      "outputs": [],
      "execution_count": 3,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:34.379Z",
          "iopub.execute_input": "2021-02-09T01:57:34.403Z",
          "iopub.status.idle": "2021-02-09T01:57:34.449Z",
          "shell.execute_reply": "2021-02-09T01:57:35.276Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 4,
          "data": {
            "text/plain": "            Open  High   Low  Close  Adj Close    Volume  Increase_Decrease  \\\nDate                                                                          \n2014-01-03  3.98  4.00  3.88   4.00       4.00  22887200                  1   \n2014-01-06  4.01  4.18  3.99   4.13       4.13  42398300                  1   \n2014-01-07  4.19  4.25  4.11   4.18       4.18  42932100                  0   \n2014-01-08  4.23  4.26  4.14   4.18       4.18  30678700                  0   \n2014-01-09  4.20  4.23  4.05   4.09       4.09  30667600                  0   \n\n            Buy_Sell_on_Open  Buy_Sell   Returns  \nDate                                              \n2014-01-03                 1         1  0.012658  \n2014-01-06                 1         1  0.032500  \n2014-01-07                 1         0  0.012106  \n2014-01-08                 0         0  0.000000  \n2014-01-09                 0         1 -0.021531  ",
            "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Open</th>\n      <th>High</th>\n      <th>Low</th>\n      <th>Close</th>\n      <th>Adj Close</th>\n      <th>Volume</th>\n      <th>Increase_Decrease</th>\n      <th>Buy_Sell_on_Open</th>\n      <th>Buy_Sell</th>\n      <th>Returns</th>\n    </tr>\n    <tr>\n      <th>Date</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2014-01-03</th>\n      <td>3.98</td>\n      <td>4.00</td>\n      <td>3.88</td>\n      <td>4.00</td>\n      <td>4.00</td>\n      <td>22887200</td>\n      <td>1</td>\n      <td>1</td>\n      <td>1</td>\n      <td>0.012658</td>\n    </tr>\n    <tr>\n      <th>2014-01-06</th>\n      <td>4.01</td>\n      <td>4.18</td>\n      <td>3.99</td>\n      <td>4.13</td>\n      <td>4.13</td>\n      <td>42398300</td>\n      <td>1</td>\n      <td>1</td>\n      <td>1</td>\n      <td>0.032500</td>\n    </tr>\n    <tr>\n      <th>2014-01-07</th>\n      <td>4.19</td>\n      <td>4.25</td>\n      <td>4.11</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>42932100</td>\n      <td>0</td>\n      <td>1</td>\n      <td>0</td>\n      <td>0.012106</td>\n    </tr>\n    <tr>\n      <th>2014-01-08</th>\n      <td>4.23</td>\n      <td>4.26</td>\n      <td>4.14</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>30678700</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0.000000</td>\n    </tr>\n    <tr>\n      <th>2014-01-09</th>\n      <td>4.20</td>\n      <td>4.23</td>\n      <td>4.05</td>\n      <td>4.09</td>\n      <td>4.09</td>\n      <td>30667600</td>\n      <td>0</td>\n      <td>0</td>\n      <td>1</td>\n      <td>-0.021531</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
          },
          "metadata": {}
        }
      ],
      "execution_count": 4,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:34.496Z",
          "iopub.execute_input": "2021-02-09T01:57:34.703Z",
          "iopub.status.idle": "2021-02-09T01:57:34.980Z",
          "shell.execute_reply": "2021-02-09T01:57:35.291Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "n = len(dataset['Adj Close'])\n",
        "X = np.array(dataset['Open'].values)\n",
        "y = dataset['Adj Close'].values"
      ],
      "outputs": [],
      "execution_count": 5,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:35.029Z",
          "iopub.execute_input": "2021-02-09T01:57:35.075Z",
          "iopub.status.idle": "2021-02-09T01:57:35.133Z",
          "shell.execute_reply": "2021-02-09T01:57:35.305Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.linear_model import LinearRegression\n",
        "from sklearn.isotonic import IsotonicRegression"
      ],
      "outputs": [],
      "execution_count": 6,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:35.174Z",
          "iopub.execute_input": "2021-02-09T01:57:35.197Z",
          "shell.execute_reply": "2021-02-09T01:57:37.697Z",
          "iopub.status.idle": "2021-02-09T01:57:37.751Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "ir=IsotonicRegression()\n",
        "y_ir=ir.fit_transform(X,y)"
      ],
      "outputs": [],
      "execution_count": 7,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:37.865Z",
          "iopub.execute_input": "2021-02-09T01:57:37.897Z",
          "iopub.status.idle": "2021-02-09T01:57:37.921Z",
          "shell.execute_reply": "2021-02-09T01:57:37.709Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "lines=[[[i,y[i]],[i,y_ir[i]]] for i in range(n)]\n",
        "lc=LineCollection(lines)\n",
        "plt.figure(figsize=(16,4))\n",
        "plt.plot(X,y,'r.',markersize=12)\n",
        "plt.plot(X,y_ir,'b.-',markersize=12)\n",
        "plt.gca().add_collection(lc)\n",
        "plt.legend(('Data','Isotonic Fit','Linear Fit'))\n",
        "plt.title(\"Isotonic Regression\")"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 8,
          "data": {
            "text/plain": "Text(0.5, 1.0, 'Isotonic Regression')"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": "<Figure size 1152x288 with 1 Axes>",
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "execution_count": 8,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:37.951Z",
          "iopub.execute_input": "2021-02-09T01:57:37.971Z",
          "iopub.status.idle": "2021-02-09T01:57:38.391Z",
          "shell.execute_reply": "2021-02-09T01:57:38.875Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "ir.score(X, y)"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 9,
          "data": {
            "text/plain": "0.9982775188322193"
          },
          "metadata": {}
        }
      ],
      "execution_count": 9,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:38.505Z",
          "iopub.execute_input": "2021-02-09T01:57:38.536Z",
          "iopub.status.idle": "2021-02-09T01:57:38.577Z",
          "shell.execute_reply": "2021-02-09T01:57:38.890Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.model_selection import train_test_split\n",
        "X_train, X_test, y_train, y_test = train_test_split(X, y, \n",
        "                                   test_size=0.4, random_state=101)"
      ],
      "outputs": [],
      "execution_count": 10,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:38.602Z",
          "iopub.execute_input": "2021-02-09T01:57:38.621Z",
          "iopub.status.idle": "2021-02-09T01:57:38.651Z",
          "shell.execute_reply": "2021-02-09T01:57:38.904Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "ir.fit(X_train,y_train)"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 11,
          "data": {
            "text/plain": "IsotonicRegression()"
          },
          "metadata": {}
        }
      ],
      "execution_count": 11,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:38.685Z",
          "iopub.execute_input": "2021-02-09T01:57:38.706Z",
          "iopub.status.idle": "2021-02-09T01:57:38.770Z",
          "shell.execute_reply": "2021-02-09T01:57:38.917Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "predictions = ir.predict(X_test)\n",
        "plt.scatter(y_test,predictions)"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 12,
          "data": {
            "text/plain": "<matplotlib.collections.PathCollection at 0x28583f116a0>"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": "<Figure size 432x288 with 1 Axes>",
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "execution_count": 12,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-02-09T01:57:38.803Z",
          "iopub.execute_input": "2021-02-09T01:57:38.822Z",
          "iopub.status.idle": "2021-02-09T01:57:38.978Z",
          "shell.execute_reply": "2021-02-09T01:57:38.931Z"
        }
      }
    }
  ],
  "metadata": {
    "kernel_info": {
      "name": "python3"
    },
    "language_info": {
      "name": "python",
      "version": "3.6.5",
      "mimetype": "text/x-python",
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "pygments_lexer": "ipython3",
      "nbconvert_exporter": "python",
      "file_extension": ".py"
    },
    "kernelspec": {
      "argv": [
        "C:/Users/Tin/Anaconda3\\python.exe",
        "-m",
        "ipykernel_launcher",
        "-f",
        "{connection_file}"
      ],
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "nteract": {
      "version": "0.28.0"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}